/* 
	该文件专门为Count组件生成action对象
*/
import {INCREMENT,DECREMENT} from '../constant'
import axios from 'axios'

export const createIncrementAction = (number) => ({type:INCREMENT,data:number})

export const createDecrementAction = (number) => ({type:DECREMENT,data:number})

//此action很特殊，是函数类型的，传统的action都是对象类型的
//函数类型的action在交给store之后，不会继续传给reducer，而是store直接调用这个action函数
export function createWaitIncrementAction(number){
	return (dispatch)=>{
		setTimeout(()=>{
			dispatch(createIncrementAction(number))
		},500)
	}
}

//具体加几看服务器
export function createServerIncrementAction(){
	return (dispatch)=>{
		axios.get('https://v1.hitokoto.cn/').then(
			response => {
				console.log('服务器返回的数据是：',response.data)
				dispatch(createIncrementAction(response.data.length))
			},
			error => {
				alert('有点小问题，稍后再试')
				dispatch(createIncrementAction(0))
			}
		)
	}
}